<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB;
use Session;
use Cache;

class CommentsController extends Controller
{
	
	// 评论
	public function doComments( $type='1', Request $request )
	{
		if( !Session::get('user_id') )
		{
			$this -> show_msg('请先登录');
		}
		// 包含 record_id content
		$data = $request -> except("_token");
		// 评论人
		$data['user_id']=Session::get('user_id');
		// 评论时间
		$data['create_at']=date('Y-m-d H:i:s',time());
		// 1资讯 2文章 3图库 4赛事推荐
		if( $type=='1' )
		{
			// 资讯 类型
			$data['type'] = 1;
			$insert_id = DB::table('comments')
						-> insertGetId( $data );
		}elseif( $type=='2' )
		{
			// 文章 类型
			$data['type'] = 2;
			$insert_id = DB::table('comments')
						-> insertGetId( $data );
		}elseif( $type=='3' )
		{
			// 图库 类型
			$data['type'] = 3;
			$insert_id = DB::table('comments')
						-> insertGetId( $data );
		}elseif( $type=='4' )
		{
			// 赛事推荐 类型
			$data['type'] = 4;
			$insert_id = DB::table('comments')
						-> insertGetId( $data );
		}else
		{
			$this->show_msg( '参数不对' );
		}
		
		if( $insert_id )
		{
			$this->show_msg( '评论成功' );
		}else
		{
			$this->show_msg( '服务器出了一些问题 您可以重新试着评论' );
		}
		
	}
	
	// 点赞
	public function doLikes( $type='1', Request $request )
	{
		// 1.资讯 2.文章 3.评论 4.回复 5.图库 6.赛事推荐
		if( $type=='1' )
		{
			// 资讯 点赞 
			
			// 包含 资讯ID
			$data = $request -> except('_token');
			// 缓存 已有
			if( Cache::get( 'likeNews_'.$data['id'] ) )
			{
				$this -> show_msg('已点赞');
			}
			
			$likes = DB::table('news')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('news')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likeNews_'.$data['id'],'已点赞' ,60*24 );
			}
			
		}elseif($type=='2')
		{
			// 文章 点赞
			// 包含 文章ID
			$data = $request -> except('_token');
			// 缓存 已有
			if( Cache::get( 'likeArticles_'.$data['id'] ) )
			{
				$this -> show_msg('已点赞');
			}
			$likes = DB::table('article')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('article')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likeArticles_'.$data['id'] ,'已点赞' ,60*24 );
			}
			
		}elseif($type=='3')
		{
			// 评论 点赞
			
			// 包含 评论ID
			$data = $request -> except('_token');
			// 缓存 已有
			if( Cache::get( 'likeComments_'.$data['id'] ) )
			{
				$this -> show_msg('已点赞');
			}
			$likes = DB::table('comments')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('comments')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likeComments_'.$data['id'] ,'已点赞' ,60*24 );
			}
			
		}elseif($type=='4')
		{
			// 回复 点赞
			 
			// 包含 回复ID
			$data = $request -> except('_token');
			
			// 缓存 已有
			if( Cache::get('likeReplys_'.$data['id']) )
			{
				$this -> show_msg('已点赞');
			}
			$likes = DB::table('reply')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('reply')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likeReplys_'.$data['id'] ,'已点赞' ,60*24 );
			}
		}elseif($type=='5')
		{
			// 图库 点赞
			
			// 包含 图库ID
			$data = $request -> except('_token');
			// 缓存 已有
			if( Cache::get( 'likePhotos_'.$data['id'] ) )
			{
				$this -> show_msg('已点赞');
			}
			
			$likes = DB::table('photos')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('photos')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likePhotos_'.$data['id'],'已点赞' ,60*24 );
			}
		}elseif($type=='6')
		{
			// 赛事推荐 点赞
			
			// 包含 赛事推荐ID
			$data = $request -> except('_token');
			// 缓存 已有
			if( Cache::get( 'likeRecommend_'.$data['id'] ) )
			{
				$this -> show_msg('已点赞');
			}
			
			$likes = DB::table('new_recommend')
						-> select('good')
						-> where( 'id','=',$data['id'] )		
						-> first();
						
			// 获取现有的 点赞数
			$now = $likes -> good;
			$now += 1;
			$res = DB::table('new_recommend')
						-> where( 'id','=',$data['id'] )		
						-> update( [ 'good'=>$now ] );
			if( $res )
			{
				// 点赞 成功
				// 设置 缓存 一天
				Cache::put( 'likeRecommend_'.$data['id'],'已点赞' ,60*24 );
			}
		}
	
	}
	
	// 评论 回复 
	public function doReply( Request $request )
	{
		if( !Session::get('user_id') )
		{
			$this -> show_msg('请先登录');
		}
		// 包含 原始评论id 被回复人id
		$data = $request -> except('_token');
		$data['reply_user_id'] = Session::get('user_id');
		// 回复 时间
		$data['create_at']=date('Y-m-d H:i:s',time());
		
		$insert_id = DB::table('reply')
						-> insertGetId( $data );
		if( $insert_id )
		{
			$this->show_msg( '回复成功' );
		}else
		{
			$this->show_msg( '服务器出了一些问题 您可以重新试着回复' );
		}
	
	}
	
	
	// 收藏
	public function doCollect( $type='1', Request $request )
	{
		
		if( !Session::get('user_id') )
		{
			$this -> show_msg('请先登录');
		}
		
		// 1.资讯 2.文章 3.图库 4.赛事推荐
		if( $type=='1' )
		{
			// 资讯 收藏
			
			// 包含 资讯id 
			$data = $request -> except('_token');
			
			// 先判断 库里
			$history = DB::table('collect')
					-> where('record_id','=',$data['id'])
					-> where( 'user_id','=',Session::get('user_id') )
					// 资讯
					-> where('type','=',1)
					-> first();
			if( !empty($history) )
			{
				$this -> show_msg('已收藏');
			}else
			{
				$insert = array();
				// 收藏 时间
				$insert['create_at'] = date( "Y-m-d H:i:s",time() );
				// 类 型
				$insert['type'] = 1;
				$insert['user_id'] = Session::get('user_id');
				$insert['record_id'] = $data['id'];
				// 写进 收藏
				$insert_id = DB::table('collect')
								-> insertGetId( $insert );
				if( $insert_id )
				{
					// 收藏 成功
					$this -> show_msg('');
				}
			
			}
			
		}elseif( $type=='2' )
		{
			// 文章 收藏
			// 包含 文章id 
			$data = $request -> except('_token');
			
			$history = DB::table('collect')
					-> where( 'record_id','=',$data['id'] )
					-> where( 'user_id','=',Session::get('user_id') )
					// 文章
					-> where('type','=',2)
					-> first();
			if( !empty($history) )
			{
				$this -> show_msg('已收藏');
			}
			$insert = array();
			// 收藏 时间
			$insert['create_at'] = date( "Y-m-d H:i:s",time() );
			// 类 型
			$insert['type'] = 2;
			$insert['user_id'] = Session::get('user_id');
			$insert['record_id'] = $data['id'];
			// 写进 收藏
			$insert_id = DB::table('collect')
							-> insertGetId( $insert );
			if( $insert_id )
			{
				$this -> show_msg('');
			}
			
			
		}elseif( $type=='3' )
		{
			// 图库 收藏
			// 包含 图库id
			$data = $request -> except('_token');
			
			$history = DB::table('collect')
					-> where( 'record_id','=',$data['id'] )
					-> where( 'user_id','=',Session::get('user_id') )
					// 图库
					-> where('type','=',3)
					-> first();
			if( !empty($history) )
			{
				$this -> show_msg('已收藏');
			}
			$insert = array();
			// 收藏 时间
			$insert['create_at'] = date( "Y-m-d H:i:s",time() );
			// 类 型
			$insert['type'] = 3;
			$insert['user_id'] = Session::get('user_id');
			$insert['record_id'] = $data['id'];
			// 写进 收藏
			$insert_id = DB::table('collect')
							-> insertGetId( $insert );
			if( $insert_id )
			{
				$this -> show_msg('');
			}
			
			
		}elseif( $type=='4' )
		{
			// 赛事推荐 收藏
			// 包含 赛事推荐id
			$data = $request -> except('_token');
			
			$history = DB::table('collect')
					-> where( 'record_id','=',$data['id'] )
					-> where( 'user_id','=',Session::get('user_id') )
					// 赛事推荐
					-> where('type','=',4)
					-> first();
			if( !empty($history) )
			{
				$this -> show_msg('已收藏');
			}
			$insert = array();
			// 收藏 时间
			$insert['create_at'] = date( "Y-m-d H:i:s",time() );
			// 类 型
			$insert['type'] = 4;
			$insert['user_id'] = Session::get('user_id');
			$insert['record_id'] = $data['id'];
			// 写进 收藏
			$insert_id = DB::table('collect')
							-> insertGetId( $insert );
			if( $insert_id )
			{
				$this -> show_msg('');
			}
			
			
		}
	
	}
	
	// 取消收藏
	public function doCancelCollect( Request $request )
	{
		// 包含 收藏id
		$data = $request -> except('_token');
		
		$res = DB::table('collect')
				-> where( 'id','=',$data['collect_id'] )
				-> delete();
		if( $res )
		{
			$this -> show_msg('取消收藏成功');
		}
		
		$this -> show_msg('取消收藏失败');
	
	}
	
	
	
	
}
